iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
影片教學

睡醒來聽 PHP 與 MySQL系列 第 17

[睡醒來聽 PHP 與 MySQL] DAY17 網頁常用-表單(2)驗證資料

  • 分享至 

  • xImage
  •  

Yes

Welcome 歡迎來到「睡醒來聽 PHP 與 MySQL」系列!

DAY17 今天要學甚麼?今天是表單應用的下半段教學分享~

🔶章節:
🔹[開頭] 0:00
🔹[驗證資料的重要] 0:26
🔹[驗證文字字數限制] 1:39
🔹[驗證數字範圍] 2:29
🔹[驗證勾選正方形框] 3:14
🔹[密碼規則檢查] 3:58
🔹[驗證電子郵件格式] 4:43
🔹[驗證日期格式] 5:39
🔹[比對兩次輸入] 7:53
🔹[選擇至少一個項目] 8:31
🔹[限制文字內容] 9:03
🔹[總結] 9:59

如果影片中不清楚,需要補充的地方我會再添加到這邊~
👆教學中的[練習]程式碼一併附上,影片中會有每組的講解、說明更清楚👆/images/emoticon/emoticon12.gif


1. 驗證文字字數限制

strlen() 函式

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = $_POST["username"];

    if (strlen($username) < 3 || strlen($username) > 20) {
        echo "名稱應該在3到20個字之間。";
    } else {
        echo "名稱合乎規則。";
    }
}

2. 驗證數字範圍

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $age = $_POST["age"];

    if ($age < 18 || $age > 99) {
        echo "年齡應該在18到99之間。";
    } else {
        echo "年齡合乎規則。";
    }
}

3. 驗證勾選正方形框

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST["checkbox"])) {
        echo "正方形框已勾選。";
    } else {
        echo "請勾選正方形框。";
    }
}

4. 密碼規則檢查

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $password = $_POST["password"];

    if (!preg_match("/^(?=.*[A-Z])(?=.*\d).{8,}$/", $password)) {
        echo "密碼不符合規則。";
    } else {
        echo "密碼合乎規則。";
    }
}

5. 驗證電子郵件格式

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $email = $_POST["email"];

    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "請輸入有效的電子郵件地址。";
    } else {
        echo "電子郵件地址合乎規則。";
    }
}

6. 驗證日期格式

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $date = $_POST["date"];

    $dateObj = DateTime::createFromFormat("Y-m-d", $date);
    if (!$dateObj || $dateObj->format("Y-m-d") !== $date) {
        echo "請輸入有效的日期格式(YYYY-MM-DD)。";
    } else {
        echo "日期格式合乎規則。";
    }
}

7. 比對兩次輸入

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $password = $_POST["password"];
    $confirmPassword = $_POST["confirm_password"];

    if ($password !== $confirmPassword) {
        echo "密碼不相符。";
    } else {
        echo "密碼相符。";
    }
}

8. 選擇至少一個項目

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (!isset($_POST["checkbox_group"]) || empty($_POST["checkbox_group"])) {
        echo "請至少選擇一個項目。";
    } else {
        echo "選擇項目合乎規則。";
    }
}

9. 限制文字內容

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $text = $_POST["text"];

    $forbiddenWords = ["壞人", "壞蛋", "來打架阿"];
    foreach ($forbiddenWords as $word) {
        if (strpos($text, $word) !== false) {
            echo "請不要使用不適當的字詞。";
            break;
        }
    }
}

建優質用戶體驗的關鍵一步。通過進行驗證、限制輸入內容和檢查規則,我們可以確保我們的應用程式在任何情況下都能正常運行。

現在也可以給自己一個小挑戰,嘗試創建一個更複雜的表單,並在其中應用我們這兩集學到的知識。/images/emoticon/emoticon43.gif


上一篇
[睡醒來聽 PHP 與 MySQL] DAY16 網頁常用-表單(1)製作表單,各表單標籤介紹
下一篇
[睡醒來聽 PHP 與 MySQL] DAY18 COOKIE介紹
系列文
睡醒來聽 PHP 與 MySQL30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言